package com.example.captchademo.model;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

// 该对象用于实例化配置文件中的对象
@Data // 为各字段自动提供get,set方法
@Configuration // 将该对象交给Spring管理
@ConfigurationProperties(prefix="captcha") // 该注解用于获取配置文件中对象的属性值
public class CaptchaProperties {
    private Integer width;
    private Integer height;
    private Session session;

    // 定义session类
    // 这里需要将类设置为public,才能被get到,并且要设置为static,否则会出现空指针异常.为什么呢? 因为它是内部类,若不是静态的,则依赖于外部类的实例对象
    // 也就是说得现有CaptchaProperties对象,才能使用Session,但是若Session是静态的,它不依赖于对象,即使没有创建CaptchaProperties对象,也能使用
    // 忠诚劝告:少写内部类,bug很多
    @Data   // 这个在内部类中也是能使用的
    public static class Session {
        private String key;
        private String date;
    }
}
